package cn.wygandwdn.core.serializer;

/**
 * @description:    WT-RPC框架序列化方法接口
 * @author: WYG
 * @time: 2021/10/24 10:35
 */

public interface WtSerializer {
    /**
     * 将对象序列化为字节数组
     * @param obj   序列化对象
     * @param <T>   对象类型
     * @return      序列化结果
     */
    <T> byte[] serializeToByte(T obj);


    /**
     * 从字节数组中反序列化出原始对象
     * @param data  序列化后的字节数组
     * @param cls   Class
     * @param <T>   原始对象类型
     * @return      原始对象
     */
    <T> T deserializeFromByte(byte[] data, Class<T> cls);


    /**
     * 序列化器类型
     * @return  序列化器类型
     */
    String getType();
}
